using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ITS.Core.Domain.News;

namespace ITS.DAL.News
{
    public interface INewsRepository
    {
        IList<NewsItem> GetNewsItemsByTagID(int TagID);
        void UpdateNewsTagTotals(NewsTag tag);
        void InsertNewsTag(NewsTag tag);


        IEnumerable<NewsCategory> GetAllCategories();

        string GetDescription(int p, string strCulture);

        bool HasCategory(NewsItem news, int iTmp);

        void AddCategory(int NewsID, int CategoryID);
        NewsItem GetNewsItemByID(int iNewsID);
        NewsCategory GetCategoryByID(int CategoryID);

        void AddNewsItem(NewsItem news);

        void RemoveCategory(int NewsItemID, int CategoryID);

        IList<NewsItem> GetAllNewsItems();
        IQueryable<NewsItem> GetAllActiveNewsItemsInCurrentCulture(int? CategoryID);
        void AddTag(int NewsID, int TagID);

        void Save();

        /*tags */
        NewsTag GetNewsTagByTagID(int TagID);

        void Delete(NewsTag tag);

        IList<NewsTag> GetAllNewsTags();

        NewsTag GetNewsTagByName(string Name);

        void Insert(NewsTag tag);

        void Update(NewsTag tag);
        /*end-tags*/
    }
}
